import axios from "axios";
import { Message } from "element-ui";
import { getToken, getUserName } from "./app";

// 创建axios
const BASEURL = process.env.NODE_ENV === "production" ? process.env.VUE_APP_API : process.env.VUE_APP_API;
const service = axios.create({
  baseURL: BASEURL,
  timeout: 15000 // 请求超时
  // 网络请求接口, 假设 500
  // 1000 2000
});

// 添加请求拦截器
service.interceptors.request.use(function(config) {
  // 在发送请求之前做些什么
  config.headers["Tokey"] = getToken();
  config.headers["UserName"] = getUserName();
  return config;
}, function(error) {
  // 对请求错误做些什么
  return Promise.reject(error);
});

/**
 * 请求接口后，返回数据进行拦截（响应拦截器）
 */
service.interceptors.response.use(function(response) {
  // 对响应数据做点什么
  let data = response.data;
  if (data.resCode) {
    Message.error(data.message);
    return Promise.reject(error);
  } else {
    return response;
  }
}, function(error) {
  // 对响应错误做点什么
  return Promise.reject(error);
});

export default service;

/**
 * 使用export default时，但不能同时存在多个default
 * 文件 import 不需要花括号
 */
